.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFBD476D050]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,1CECD400428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,20F5B2B76F8
call      qword ptr [7FFBD4724E10]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD47896D0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD476D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFBD44F7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFBD4FFC8B8]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AFF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AFF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,4214EA185B37
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFBD4724828]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,4214EA185B37
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD4724390]
mov       rcx,4214EA185B37
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFBD480E8C8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFBD480E370]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFBD4FF6460]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1CECD400298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFBD4F8C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFBD4F86508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFBD4FCD3E0]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFBD4F8C828]
lea       rcx,[rbp+40]
call      qword ptr [7FFBD465C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1CECD401DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFBD48C7320]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,4214EA185B37
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD47244B0]
mov       rcx,4214EA185B37
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AFF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,20F5B2A0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFBD4655B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFBD476DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFBD4AFF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFBD48A57E8]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFBD48A5800]
int       3
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFBD476D050]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,250F0400428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,2917E3D76F8
call      qword ptr [7FFBD4724E10]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD47896D0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD476D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFBD44F7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFBD4FFCA38]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AFF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AFF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0C8429EFB678D
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFBD4724828]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0C8429EFB678D
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD4724390]
mov       rcx,0C8429EFB678D
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFBD480E8C8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFBD480E370]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFBD4FF65E0]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,250F0400298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFBD4F8C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFBD4F86508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFBD4FCD710]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFBD4F8C828]
lea       rcx,[rbp+40]
call      qword ptr [7FFBD465C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,250F0401DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFBD48C7320]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0C8429EFB678D
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD47244B0]
mov       rcx,0C8429EFB678D
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AFF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2917E3C0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFBD4655B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFBD476DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFBD4AFF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFBD48A57E8]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFBD48A5800]
int       3
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFBD475D050]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,21783800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,258158376F8
call      qword ptr [7FFBD4714E10]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD47796D0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD475D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFBD44E7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFBD4FECA38]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,39D3896B1DE
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFBD4714828]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,39D3896B1DE
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD4714390]
mov       rcx,39D3896B1DE
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFBD47FE8C8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFBD47FE370]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFBD4FE65E0]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,21783800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFBD4F7C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFBD4F76508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFBD4FBD710]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFBD4F7C828]
lea       rcx,[rbp+40]
call      qword ptr [7FFBD464C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,21783801DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFBD48B7320]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,39D3896B1DE
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD47144B0]
mov       rcx,39D3896B1DE
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,25815820008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L02
test      r8b,18
je        short M04_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M04_L00
 
ret
M04_L01
 
test      r8b,4
je        short M04_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M04_L00
M04_L02
 
cmp       r8,40
ja        short M04_L07
M04_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L06
M04_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L05
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M04_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M04_L00
M04_L06
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L04
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        near ptr M04_L03
jmp       near ptr M04_L04
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFBD4645B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFBD475DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFBD4AEF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFBD48957E8]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFBD4895800]
int       3
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFBD480C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,1EF35000428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,22FC6FC76F8
call      qword ptr [7FFBD4744810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD47FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFBD44C7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFBD4FBCA08]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,60C6F9676320
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFBD4744228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,60C6F9676320
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD471FD20]
mov       rcx,60C6F9676320
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFBD46EF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFBD46EF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFBD4FB64F0]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1EF35000298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFBD4F4C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFBD4F46508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFBD4F8D710]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFBD4F4C828]
lea       rcx,[rbp+40]
call      qword ptr [7FFBD462C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1EF39003D08
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFBD48875C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,60C6F9676320
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD471FE40]
mov       rcx,60C6F9676320
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,22FC6FB0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFBD4625B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFBD480CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFBD4ABF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFBD476E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFBD476E9E8]
int       3
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFBD481C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,248C6800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,28958867718
call      qword ptr [7FFBD4754810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFBD44D7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFBD4FCDDE8]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,38E2E1F932E5
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFBD4754228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,38E2E1F932E5
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD472FD20]
mov       rcx,38E2E1F932E5
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFBD46FF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFBD46FF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFBD4FC75A0]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,248C6800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFBD4F5DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFBD4F57948]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFBD4F9E940]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFBD4F5DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FFBD463C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,248C6805D00
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFBD48975C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,38E2E1F932E5
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD472FE40]
mov       rcx,38E2E1F932E5
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,28958850008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFBD4635B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFBD481CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFBD4ACF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFBD477E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFBD477E9E8]
int       3
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFBD483C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,1D3C1400428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,21453287718
call      qword ptr [7FFBD4774810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L01
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L02
M00_L01
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L02
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD482EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFBD44F7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFBD4FEDFF8]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0E319F401493
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFBD4774228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0E319F401493
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD474FD20]
mov       rcx,0E319F401493
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFBD471F8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFBD471F360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFBD4FE7AC8]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1D3C1400298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFBD4F7DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFBD4F77948]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFBD4FBEC70]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFBD4F7DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FFBD465C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1D3C1405D00
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFBD48B75C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0E319F401493
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD474FE40]
mov       rcx,0E319F401493
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFBD4655B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,esi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFBD483CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFBD4AEF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFBD479E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFBD479E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,21453270008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFBD480C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,10B39000428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,14BC6D07718
call      qword ptr [7FFBD4744810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD47FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFBD44C7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFBD4FBDFF8]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0E7F1979DE8F8
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFBD4744228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0E7F1979DE8F8
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD471FD20]
mov       rcx,0E7F1979DE8F8
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFBD46EF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFBD46EF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFBD4FB7AC8]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,10B39000298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFBD4F4DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFBD4F47948]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFBD4F8EC70]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFBD4F4DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FFBD462C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,10B39005D00
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFBD48875C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0E7F1979DE8F8
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD471FE40]
mov       rcx,0E7F1979DE8F8
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,14BC6CF0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFBD4625B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFBD480CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFBD4ABF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFBD476E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFBD476E9E8]
int       3
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFBD483C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,1D732C00428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,217C0AF7718
call      qword ptr [7FFBD4774810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L01
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L02
M00_L01
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L02
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD482EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFBD44F7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFBD4FEDAE8]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,6FB0BBFBBB16
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFBD4774228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,6FB0BBFBBB16
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD474FD20]
mov       rcx,6FB0BBFBBB16
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFBD471F8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFBD471F360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFBD4FE7AC8]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1D732C00298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFBD4F7DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFBD4F77948]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFBD4FBEC70]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFBD4F7DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FFBD465C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1D72EC03D08
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFBD48B75C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,6FB0BBFBBB16
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD474FE40]
mov       rcx,6FB0BBFBBB16
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFBD4655B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,esi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFBD483CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFBD4AEF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFBD479E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFBD479E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,217C0AE0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFBD473D050]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,20C70800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,24D028276F8
call      qword ptr [7FFBD46F4E10]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD47596D0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FFBD4A94CF0]
mov       ecx,0F
mov       rdx,7FFBD49FDA88
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1AC2
mov       rdx,7FFBD489B918
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FFBD4576B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFBD49FDA88
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFBD4576B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FFBD4A94AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FFBD46F6718]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FFBD473D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFBD44C7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFBD4FCCF90]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,4AF3F5DE1153
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFBD46F4828]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,4AF3F5DE1153
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD46F4390]
mov       rcx,4AF3F5DE1153
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFBD47DE8C8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFBD47DE370]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFBD4FC6B38]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,20C70800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFBD4F5C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFBD4F56508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFBD4F9D710]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFBD4F5C828]
lea       rcx,[rbp+40]
call      qword ptr [7FFBD462C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,20C70801DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFBD4897320]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,4AF3F5DE1153
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD46F44B0]
mov       rcx,4AF3F5DE1153
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,24D02810008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FFBD4875D58]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,24D02810008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L02
test      r8b,18
je        short M05_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M05_L00
 
ret
M05_L01
 
test      r8b,4
je        short M05_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M05_L00
M05_L02
 
cmp       r8,40
ja        short M05_L07
M05_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L06
M05_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L05
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M05_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M05_L00
M05_L06
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L04
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        near ptr M05_L03
jmp       near ptr M05_L04
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFBD4625B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFBD473DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFBD4ACF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FFBD48757E8]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FFBD4875800]
int       3
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L06
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFBD474D050]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,2078FC00428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,2481DB476F8
call      qword ptr [7FFBD4704E10]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD47696D0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD474D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      qword ptr [7FFBD4AA4CF0]
mov       ecx,0F
mov       rdx,7FFBD4A0DA88
call      CORINFO_HELP_STRCNS
mov       rbx,rax
mov       ecx,1AC2
mov       rdx,7FFBD48AB918
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFBD4586B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFBD4A0DA88
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFBD4586B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
call      qword ptr [7FFBD4AA4AE0]
mov       r8,rax
mov       rdx,rbx
mov       rcx,rsi
call      qword ptr [7FFBD4706718]
mov       rcx,rsi
call      CORINFO_HELP_THROW
int       3
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFBD44D7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFBD4FDCF90]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0F14F0936FE8E
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFBD4704828]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0F14F0936FE8E
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD4704390]
mov       rcx,0F14F0936FE8E
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFBD47EE8C8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFBD47EE370]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFBD4FD6B38]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,2078FC00298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFBD4F6C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFBD4F66508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFBD4FAD710]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFBD4F6C828]
lea       rcx,[rbp+40]
call      qword ptr [7FFBD463C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,2078FC01DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFBD48A7320]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0F14F0936FE8E
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD47044B0]
mov       rcx,0F14F0936FE8E
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2481DB30008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFBD4635B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFBD474DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFBD4ADF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFBD48857E8]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFBD4885800]
int       3
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M06_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M06_L02
test      rbx,rbx
je        short M06_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M06_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M06_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L01
 
call      qword ptr [7FFBD4885D58]
int       3
M06_L02
 
test      rbx,rbx
je        short M06_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M06_L04
M06_L03
 
mov       rax,2481DB30008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L06
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFBD473D050]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,1F127400428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,231B53676F8
call      qword ptr [7FFBD46F4E10]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD47596D0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD473D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      qword ptr [7FFBD4A94CF0]
mov       ecx,0F
mov       rdx,7FFBD49FDA88
call      CORINFO_HELP_STRCNS
mov       rbx,rax
mov       ecx,1AC2
mov       rdx,7FFBD489B918
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFBD4576B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFBD49FDA88
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFBD4576B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
call      qword ptr [7FFBD4A94AE0]
mov       r8,rax
mov       rdx,rbx
mov       rcx,rsi
call      qword ptr [7FFBD46F6718]
mov       rcx,rsi
call      CORINFO_HELP_THROW
int       3
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFBD44C7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFBD4FCCF90]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0DCAC64E7CE63
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFBD46F4828]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0DCAC64E7CE63
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD46F4390]
mov       rcx,0DCAC64E7CE63
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFBD47DE8C8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFBD47DE370]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFBD4FC6B38]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1F127400298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFBD4F5C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFBD4F56508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFBD4F9D710]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFBD4F5C828]
lea       rcx,[rbp+40]
call      qword ptr [7FFBD462C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1F127401DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFBD4897320]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0DCAC64E7CE63
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD46F44B0]
mov       rcx,0DCAC64E7CE63
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,231B5350008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L02
test      r8b,18
je        short M04_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M04_L00
 
ret
M04_L01
 
test      r8b,4
je        short M04_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M04_L00
M04_L02
 
cmp       r8,40
ja        short M04_L07
M04_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L06
M04_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L05
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M04_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M04_L00
M04_L06
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L04
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        near ptr M04_L03
jmp       near ptr M04_L04
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFBD4625B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFBD473DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFBD4ACF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFBD48757E8]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFBD4875800]
int       3
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M06_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M06_L02
test      rbx,rbx
je        short M06_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M06_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M06_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L01
 
call      qword ptr [7FFBD4875D58]
int       3
M06_L02
 
test      rbx,rbx
je        short M06_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M06_L04
M06_L03
 
mov       rax,231B5350008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L06
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFBD481C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L05
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,23947400428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,279D54076F8
call      qword ptr [7FFBD4754810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L01
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L02
M00_L01
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L02
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L06
 
call      qword ptr [7FFBD4A94CF0]
mov       ecx,0F
mov       rdx,7FFBD49FDA88
call      CORINFO_HELP_STRCNS
mov       rbx,rax
mov       ecx,1AC2
mov       rdx,7FFBD489BBC0
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFBD4586B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFBD49FDA88
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFBD4586B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
call      qword ptr [7FFBD4A94AE0]
mov       r8,rax
mov       rdx,rbx
mov       rcx,rsi
call      qword ptr [7FFBD47A6670]
mov       rcx,rsi
call      CORINFO_HELP_THROW
int       3
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFBD44D7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFBD4FCCF60]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0CB75B2A318FC
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFBD4754228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0CB75B2A318FC
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD472FD20]
mov       rcx,0CB75B2A318FC
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFBD46FF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFBD46FF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFBD4FC6A48]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,23947400298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFBD4F5C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFBD4F56508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFBD4F9D710]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFBD4F5C828]
lea       rcx,[rbp+40]
call      qword ptr [7FFBD463C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,23947405D00
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFBD48975C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0CB75B2A318FC
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD472FE40]
mov       rcx,0CB75B2A318FC
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFBD4635B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,esi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFBD481CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFBD4ACF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFBD477E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFBD477E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,279D53F0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M06_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M06_L02
test      rbx,rbx
je        short M06_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M06_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M06_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L01
 
call      qword ptr [7FFBD477EF40]
int       3
M06_L02
 
test      rbx,rbx
je        short M06_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M06_L04
M06_L03
 
mov       rax,279D53F0008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFBD481C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,1DA9E000428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,21B2FFC7718
call      qword ptr [7FFBD4754810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FFBD4A94CF0]
mov       ecx,0F
mov       rdx,7FFBD49FDA88
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1AC2
mov       rdx,7FFBD489BC20
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FFBD4586B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFBD49FDA88
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFBD4586B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FFBD4A94AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FFBD47A6670]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFBD44D7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFBD4FCE388]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,34557A46B5E3
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFBD4754228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,34557A46B5E3
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD472FD20]
mov       rcx,34557A46B5E3
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFBD46FF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFBD46FF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFBD4FC7AF8]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1DA9E000298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFBD4F5DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFBD4F57948]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFBD4F9E940]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFBD4F5DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FFBD463C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1DA9E005D00
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFBD4897628]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,34557A46B5E3
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD472FE40]
mov       rcx,34557A46B5E3
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,21B2FFB0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FFBD477EF40]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,21B2FFB0008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M05_L02
M05_L00
 
test      r8,r8
je        short M05_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M05_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M05_L02
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M05_L02
 
ret
M05_L03
 
cmp       r8,40
ja        short M05_L06
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L10
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L02
M05_L06
 
cmp       r8,800
ja        short M05_L09
mov       r9,r8
shr       r9,6
M05_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L07
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L08
 
cmp       rcx,rdx
je        short M05_L02
M05_L09
 
jmp       qword ptr [7FFBD4635B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFBD481CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFBD4ACF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FFBD477E9D0]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FFBD477E9E8]
int       3
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L06
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFBD482C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,29B05000428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,2DB92F67718
call      qword ptr [7FFBD4764810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      qword ptr [7FFBD4AA4CF0]
mov       ecx,0F
mov       rdx,7FFBD4A0DA88
call      CORINFO_HELP_STRCNS
mov       rbx,rax
mov       ecx,1AC2
mov       rdx,7FFBD48ABE68
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFBD4596B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFBD4A0DA88
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFBD4596B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
call      qword ptr [7FFBD4AA4AE0]
mov       r8,rax
mov       rdx,rbx
mov       rcx,rsi
call      qword ptr [7FFBD47B6670]
mov       rcx,rsi
call      CORINFO_HELP_THROW
int       3
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFBD44E7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFBD4FDE538]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,975A6CF0B0F9
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFBD4764228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,975A6CF0B0F9
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD473FD20]
mov       rcx,975A6CF0B0F9
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFBD470F8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFBD470F360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFBD4FDC030]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,29B05000298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFBD4F6DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFBD4F67948]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFBD4FAEC70]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFBD4F6DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FFBD464C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,29B05005CE0
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFBD487D1F0]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,975A6CF0B0F9
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD473FE40]
mov       rcx,975A6CF0B0F9
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2DB92F50008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M04_L02
M04_L00
 
test      r8,r8
je        short M04_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M04_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M04_L02
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M04_L02
 
ret
M04_L03
 
cmp       r8,40
ja        short M04_L06
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L10
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L02
M04_L06
 
cmp       r8,800
ja        short M04_L09
mov       r9,r8
shr       r9,6
M04_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L07
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L08
 
cmp       rcx,rdx
je        short M04_L02
M04_L09
 
jmp       qword ptr [7FFBD4645B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFBD482CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFBD4ADF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFBD478E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFBD478E9E8]
int       3
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M06_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M06_L02
test      rbx,rbx
je        short M06_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M06_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M06_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L01
 
call      qword ptr [7FFBD478EF40]
int       3
M06_L02
 
test      rbx,rbx
je        short M06_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M06_L04
M06_L03
 
mov       rax,2DB92F50008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L06
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFBD481C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,164ADC00428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,1A53BA97718
call      qword ptr [7FFBD4754810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      qword ptr [7FFBD4A94CF0]
mov       ecx,0F
mov       rdx,7FFBD49FDA88
call      CORINFO_HELP_STRCNS
mov       rbx,rax
mov       ecx,1AC2
mov       rdx,7FFBD489BBC0
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFBD4586B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFBD49FDA88
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFBD4586B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
call      qword ptr [7FFBD4A94AE0]
mov       r8,rax
mov       rdx,rbx
mov       rcx,rsi
call      qword ptr [7FFBD47A6670]
mov       rcx,rsi
call      CORINFO_HELP_THROW
int       3
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFBD44D7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFBD4FCE538]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,541139046875
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFBD4754228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,541139046875
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD472FD20]
mov       rcx,541139046875
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFBD46FF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFBD46FF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFBD4FCC030]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,164ADC00298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFBD4F5DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFBD4F57948]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFBD4F9EC70]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFBD4F5DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FFBD463C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,164A9C03D08
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFBD48975C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,541139046875
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD472FE40]
mov       rcx,541139046875
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1A53BA80008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFBD4635B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFBD481CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFBD4ACF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFBD477E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFBD477E9E8]
int       3
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M06_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M06_L02
test      rbx,rbx
je        short M06_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M06_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M06_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L01
 
call      qword ptr [7FFBD477EF40]
int       3
M06_L02
 
test      rbx,rbx
je        short M06_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M06_L04
M06_L03
 
mov       rax,1A53BA80008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFBD482C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,1AAD8800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,1EB6A567718
call      qword ptr [7FFBD4764810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FFBD4AA4CF0]
mov       ecx,0F
mov       rdx,7FFBD4A0DA88
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1AC2
mov       rdx,7FFBD48ABBC0
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FFBD4596B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFBD4A0DA88
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFBD4596B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FFBD4AA4AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FFBD47B6670]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFBD44E7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFBD4FDDE48]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,16900E105C5C
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFBD4764228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,16900E105C5C
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD473FD20]
mov       rcx,16900E105C5C
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFBD470F8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFBD470F360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFBD4FD7AF8]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1AAD8800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFBD4F6DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFBD4F67948]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFBD4FAE940]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFBD4F6DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FFBD464C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1AAD8805D00
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFBD48A75C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,16900E105C5C
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFBD473FE40]
mov       rcx,16900E105C5C
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1EB6A550008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FFBD478EF40]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,1EB6A550008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFBD4645B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFBD482CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFBD4ADF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FFBD478E9D0]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FFBD478E9E8]
int       3
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,40
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1DC7B800428
mov       r8,[r8]
mov       [rsp+38],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],1
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,21D097E76F8
call      qword ptr [7FFBD4576C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r15d,[rax+8]
test      r15d,r15d
je        short M00_L04
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L02
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD47FEB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFBD4FECE40]
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFBD4FECE40]
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFBD4FECE40]
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        near ptr M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       ecx,ecx
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFBD4FECE40]
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       ecx,ecx
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFBD4FECE40]
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+30],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,40
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,21D097D0008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0F4BE6313E3A8
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0F4BE6313E3A8
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4807318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFBD4625B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD480CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD476E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD476E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,21D097D0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,40
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,23412C00428
mov       r8,[r8]
mov       [rsp+38],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],1
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,274A4AB76F8
call      qword ptr [7FFBD4586C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r15d,[rax+8]
test      r15d,r15d
je        short M00_L04
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L02
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFBD4FFCE40]
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFBD4FFCE40]
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFBD4FFCE40]
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFBD4FFCE40]
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFBD4FFCE40]
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+30],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,40
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,274A4AA0008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,5EE4C51BC783
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,5EE4C51BC783
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4817318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L02
M02_L00
 
test      r8,r8
je        short M02_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L02
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L02
 
ret
M02_L03
 
cmp       r8,40
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L02
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L08
 
cmp       rcx,rdx
je        short M02_L02
M02_L09
 
jmp       qword ptr [7FFBD4635B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD481CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD477E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD477E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,274A4AA0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,17F40C00428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,1BFCE8D76F8
call      qword ptr [7FFBD4576C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD47FEB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFBD4E4DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFBD4E4DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFBD4E4DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFBD4E4DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFBD4E4DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,1BFCE8C0008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,8BBDB6753407
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,8BBDB6753407
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4807318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4625B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD480CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD476E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD476E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1BFCE8C0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFBFB4F7370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFBFB510750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,2690D800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,2A99B6076F8
call      qword ptr [7FFBD4596C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,2A99B5F0008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0CB7070E4E15
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48270D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48271E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0CB7070E4E15
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4827318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47B66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4645B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD482CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD478E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD478E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2A99B5F0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFBFB4F7370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFBFB510750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,273B2400428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,2B4443E7718
call      qword ptr [7FFBD4596C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,2B4443D0008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,3714DA97057F
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48270D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48271E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,3714DA97057F
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4827318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47B66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4645B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD482CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD478E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD478E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2B4443D0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFBFB4F7370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFBFB510750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1DEBD800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,21F4F687718
call      qword ptr [7FFBD45A6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD482EB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFBD4E7DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFBD4E7DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFBD4E7DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFBD4E7DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFBD4E7DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,21F4F670008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,471460A10F96
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48370D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48371E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,471460A10F96
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4837318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47C66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4655B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD483CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD479E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD479E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,21F4F670008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFBFB4F7370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFBFB510750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,40
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,152F5000428
mov       r8,[r8]
mov       [rsp+38],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],1
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,19383087718
call      qword ptr [7FFBD4596C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        near ptr M00_L24
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       r13,rax
mov       esi,[r13+8]
test      esi,esi
je        near ptr M00_L25
movzx     ecx,word ptr [r13+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       edi,[rsi-1]
mov       ecx,edi
movzx     ecx,word ptr [r13+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L25
M00_L08
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L25
M00_L09
 
xor       ebp,ebp
test      esi,esi
jle       short M00_L13
M00_L10
 
mov       ecx,ebp
movzx     ecx,word ptr [r13+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       ebp
cmp       esi,ebp
jg        short M00_L10
M00_L13
 
lea       edi,[rsi-1]
cmp       edi,ebp
jl        short M00_L20
mov       ecx,edi
or        ecx,ebp
jl        short M00_L17
cmp       esi,edi
jle       short M00_L17
M00_L14
 
mov       ecx,edi
movzx     ecx,word ptr [r13+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       edi
cmp       edi,ebp
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       edi,esi
jae       near ptr M00_L26
mov       ecx,edi
movzx     ecx,word ptr [r13+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       edi
cmp       edi,ebp
jge       short M00_L17
M00_L20
 
mov       r14d,edi
sub       r14d,ebp
inc       r14d
cmp       esi,r14d
jne       short M00_L22
mov       rsi,r13
M00_L21
 
mov       [rsp+30],rsi
mov       r15,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,40
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L22
 
test      r14d,r14d
je        short M00_L23
mov       ecx,r14d
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
mov       r8d,r14d
cmp       [rsi],sil
lea       rcx,[rsi+0C]
mov       edx,ebp
lea       rdx,[r13+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rsi,19383070008
jmp       short M00_L21
M00_L24
 
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
jmp       near ptr M00_L01
M00_L25
 
mov       rsi,r13
jmp       short M00_L21
M00_L26
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,1885E1F0E75B
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48270D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48271E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,1885E1F0E75B
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4827318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47B66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L07
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L04
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        near ptr M02_L03
jmp       near ptr M02_L04
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4645B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD482CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD478E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD478E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,19383070008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFBFB4F7370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFBFB510750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,21EA9000428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,25F37037718
call      qword ptr [7FFBD4596C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFBFAA92E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFBD4E6DE18]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,25F37020008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0CBC07C1D3845
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48270D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48271E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0CBC07C1D3845
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4827318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47B66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L02
M02_L00
 
test      r8,r8
je        short M02_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L02
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L02
 
ret
M02_L03
 
cmp       r8,40
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L02
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L08
 
cmp       rcx,rdx
je        short M02_L02
M02_L09
 
jmp       qword ptr [7FFBD4645B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD482CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD478E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD478E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,25F37020008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFBFB4F7370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFBFB510750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1A9B2C00428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,1EA44D976F8
call      qword ptr [7FFBD4576C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD473D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD47596D0]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,39D7556E0CFF
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD473C000]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD473C108]; System.Text.ValueStringBuilder.ToString()
mov       rcx,39D7556E0CFF
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD473C240]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD46F6790]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L07
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L04
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        near ptr M02_L03
jmp       near ptr M02_L04
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4625B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD473DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD48757E8]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD4875800]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1EA44D80008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,164ED000428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,1A57ACC76F8
call      qword ptr [7FFBD4576C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD47FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0AD3E531D3A40
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0AD3E531D3A40
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4807318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L02
M02_L00
 
test      r8,r8
je        short M02_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L02
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L02
 
ret
M02_L03
 
cmp       r8,40
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L02
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L08
 
cmp       rcx,rdx
je        short M02_L02
M02_L09
 
jmp       qword ptr [7FFBD4625B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD480CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD476E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD476E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1A57ACB0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,27E3C000428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,2BECE1776F8
call      qword ptr [7FFBD45A6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD482EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0BB7BF1436C8E
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48370D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48371E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0BB7BF1436C8E
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4837318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47C66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4655B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD483CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD479E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD479E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2BECE160008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1C832400428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,208C43376F8
call      qword ptr [7FFBD4576C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD47FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,710E72059DAF
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,710E72059DAF
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4807318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4625B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD480CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD476E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD476E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,208C4320008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1D6CBC00428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,2175DC97718
call      qword ptr [7FFBD4586C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,658DC1FD1B04
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,658DC1FD1B04
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4817318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4635B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD481CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD477E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD477E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2175DC80008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1FF00C00428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,23F8E977718
call      qword ptr [7FFBD4596C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,66E93585721
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48270D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48271E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,66E93585721
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4827318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47B66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4645B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD482CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD478E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD478E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,23F8E960008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,23897800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,27929587718
call      qword ptr [7FFBD4576C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD47FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,46813154293D
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,46813154293D
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4807318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4625B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD480CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD476E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD476E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,27929570008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1E315000428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,223A2E37718
call      qword ptr [7FFBD4576C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD47FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,21B26B648231
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,21B26B648231
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4807318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4625B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD480CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD476E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD476E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,223A2E20008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,50
vzeroupper
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
vmovdqa   xmmword ptr [rsp+40],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,1F857800428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+40],xmm0
mov       [rsp+40],rbp
mov       [rsp+48],rax
lea       r8,[rsp+40]
mov       [rsp+28],r8
mov       dword ptr [rsp+30],2
lea       r8,[rsp+28]
mov       rdx,238E94F76F8
call      qword ptr [7FFBD4586C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       ebp,[rax+8]
test      ebp,ebp
je        short M00_L04
mov       r8,[rsi+8]
mov       r14d,[rsi+18]
lea       ecx,[r14+rbp]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r14d
lea       rcx,[r8+rcx*2+10]
cmp       ebp,2
jle       short M00_L02
movsxd    r8,ebp
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       ebp,r14d
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       ebp,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,ebp
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,50
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,2BBBDF900EEC
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,2BBBDF900EEC
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4817318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L02
M02_L00
 
test      r8,r8
je        short M02_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L02
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L02
 
ret
M02_L03
 
cmp       r8,40
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L02
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L08
 
cmp       rcx,rdx
je        short M02_L02
M02_L09
 
jmp       qword ptr [7FFBD4635B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD481CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD477E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD477E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,238E94E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,22DB0800428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,26E425476F8
call      qword ptr [7FFBD4596C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0C6F86CCA16AC
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48270D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48271E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0C6F86CCA16AC
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4827318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47B66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4645B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD482CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD478E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD478E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,26E42530008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,27240C00428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,2B2D2AB76F8
call      qword ptr [7FFBD4596C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,279E95409E6C
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48270D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48271E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,279E95409E6C
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4827318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47B66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4645B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD482CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD478E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD478E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2B2D2AA0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,1858FC00428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,1C6219E76F8
call      qword ptr [7FFBD4576C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD47FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,2CBB48BB2C0D
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,2CBB48BB2C0D
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4807318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4625B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD480CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD476E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD476E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1C6219D0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,11346800428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,153D8697718
call      qword ptr [7FFBD4596C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,43F0FB4386AF
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48270D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48271E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,43F0FB4386AF
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4827318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47B66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4645B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD482CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD478E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD478E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,153D8680008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,1EA82400428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,22B14317718
call      qword ptr [7FFBD4576C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD47FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,2DFE9F422FA0
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,2DFE9F422FA0
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4807318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFBD4625B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD480CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD476E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD476E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,22B14300008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,29B08400428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,2DB9A3D7718
call      qword ptr [7FFBD45A6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD482EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,7426B79F5E29
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48370D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48371E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,7426B79F5E29
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4837318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47C66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4655B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD483CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD479E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD479E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2DB9A3C0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,29567400428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,2D5F5337718
call      qword ptr [7FFBD4586C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,858A05C2F430
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,858A05C2F430
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4817318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4635B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD481CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD477E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD477E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2D5F5320008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,50
vzeroupper
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
vmovdqa   xmmword ptr [rsp+40],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,188B9000428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+40],xmm0
mov       [rsp+40],rcx
mov       rcx,1C946ED9078
mov       [rsp+48],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],2
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,1C946EE76F8
call      qword ptr [7FFBD45A6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       ebp,[rax+8]
test      ebp,ebp
je        short M00_L04
mov       r8,[rsi+8]
mov       r14d,[rsi+18]
lea       ecx,[r14+rbp]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r14d
lea       rcx,[r8+rcx*2+10]
cmp       ebp,2
jle       short M00_L02
movsxd    r8,ebp
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       ebp,r14d
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       ebp,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,ebp
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD482EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,50
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,16E2F75C1EE2
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48370D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48371E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,16E2F75C1EE2
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4837318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47C66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFBD4655B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD483CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD479E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD479E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1C946ED0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,1CB03800428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,20B95869078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,20B958776F8
call      qword ptr [7FFBD45A6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD482EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,3A1DE7B8731C
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48370D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48371E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,3A1DE7B8731C
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4837318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47C66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4655B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD483CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD479E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD479E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,20B95860008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,23834400428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,278C6219078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,278C62276F8
call      qword ptr [7FFBD4586C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0F5BC538E6608
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0F5BC538E6608
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4817318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFBD4635B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD481CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD477E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD477E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,278C6210008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,17A03C00428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,1BA95AA9078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,1BA95AB76F8
call      qword ptr [7FFBD4586C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0DC5DCB0BBD31
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0DC5DCB0BBD31
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4817318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L02
M02_L00
 
test      r8,r8
je        short M02_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L02
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L02
 
ret
M02_L03
 
cmp       r8,40
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L02
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L08
 
cmp       rcx,rdx
je        short M02_L02
M02_L09
 
jmp       qword ptr [7FFBD4635B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD481CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD477E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD477E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1BA95AA0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,20943C00428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,249D5AE9078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,249D5AF7718
call      qword ptr [7FFBD4596C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0DBF56D4E72F0
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48270D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48271E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0DBF56D4E72F0
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4827318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47B66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4645B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD482CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD478E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD478E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,249D5AE0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,2C1C4C00428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,30252A29078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,30252A37718
call      qword ptr [7FFBD45A6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD482EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,7EF80C0F033F
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48370D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48371E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,7EF80C0F033F
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4837318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47C66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFBD4655B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD483CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD479E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD479E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,30252A20008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,23C60800428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,27CF2599078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,27CF25A7718
call      qword ptr [7FFBD4586C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0FE1D2A1ADF38
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0FE1D2A1ADF38
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4817318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4635B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD481CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD477E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD477E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,27CF2590008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,21E03000428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,25E94FF9078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,25E95007718
call      qword ptr [7FFBD4586C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0E4C482BF8DD4
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFBD48170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFBD48171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0E4C482BF8DD4
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFBD4817318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFBD47A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFBD4635B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD481CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD477E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD477E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,25E94FF0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFBD4FD6040]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,1EF8D406B10
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FFBD482C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2301F381C14
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r15+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r15
call      qword ptr [7FFBD482C3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2301F380008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1EF8D406B10
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD482C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFBD4FD64F0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,2530A40AB00
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FFBD474D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FFBD474D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2939C171B34
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r15+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r15
call      qword ptr [7FFBD474D2D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FFBD474D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FFBD47696D0]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2939C170008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,2530A40AB00
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD474D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFBD4FD6040]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,1503D406B10
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFBD482C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,190CF4C1C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFBD482C3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,190CF4C0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1503D406B10
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD482C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFBD4FD64F0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,2A117C06B10
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFBD482C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2E1A99C1C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFBD482C3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2E1A99C0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,2A117C06B10
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD482C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFBD4FD7AC8]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,28B3E80AB00
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFBD474D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFBD474D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2CBCC601B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFBD474D2D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFBD474D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFBD47696D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2CBCC600008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,28B3E80AB00
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD474D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFBD4FF75A0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,221E2808B08
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFBD476D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFBD476D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,262746E1B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFBD476D2D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFBD476D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFBD47896D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,262746E0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFBD4D1EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,221E2808B08
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD476D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4D1EEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFBD4FD75A0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,15211408B08
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFBD474D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFBD474D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,1929F0C1B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFBD474D2D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFBD474D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFBD47696D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,1929F0C0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,15211408B08
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD474D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFBD4FC78D0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,27B7BC08B08
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFBD473D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFBD473D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2BC0DCA1B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFBD473D2D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFBD473D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFBD47596D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2BC0DCA0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,27B7BC08B08
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD473D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,2D0A2F19078
call      qword ptr [7FFBD4FE6508]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rsi,rcx
mov       rdi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,2D0A2F19078
test      rsi,rsi
cmove     rsi,rcx
mov       rcx,29015008B08
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FFBD483C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rdi],0
je        short M01_L07
mov       rdx,2D0A2F11C14
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r15+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r15
mov       rdx,rsi
call      qword ptr [7FFBD483C2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FFBD482EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2D0A2F10008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFBD4D0EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,29015008B08
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD483C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4D0EEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,1913B029078
call      qword ptr [7FFBD4FE6388]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,1913B029078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,150A9006B10
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FFBD483C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,1913B021C14
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r15+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r15
mov       rdx,rdi
call      qword ptr [7FFBD483C2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FFBD482EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,1913B020008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFBD4D0EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,150A9006B10
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD483C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4D0EEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,1E288389078
call      qword ptr [7FFBD4FD6508]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,1E288389078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,1A1FA408B08
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFBD482C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        near ptr M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,1E288381C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
add       r8d,2
mov       [r13+18],r8d
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFBD482C2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,1E288380008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1A1FA408B08
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD482C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,1F1B44A9078
call      qword ptr [7FFBD4FC6388]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,1F1B44A9078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,1B122408B08
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFBD481C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,1F1B44A1C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFBD481C2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,1F1B44A0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1B122408B08
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD481C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,1A44C9E9078
call      qword ptr [7FFBD4FE7AE0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,1A44C9E9078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,163BAC06B10
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFBD483C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,1A44C9E1C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFBD483C2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFBD482EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,1A44C9E0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFBD4D0EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,163BAC06B10
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD483C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4D0EEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,282FFC89078
call      qword ptr [7FFBD4FF7AE0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,282FFC89078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,24279C02B38
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFBD476D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFBD476D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,282FFC81B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFBD476D1A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFBD476D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFBD47896D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,282FFC80008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFBD4D1EF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,24279C02B38
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD476D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4D1EF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,2A6439C9078
call      qword ptr [7FFBD4FF7AE0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,2A6439C9078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,265B1C08B08
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFBD476D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFBD476D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2A6439C1B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFBD476D1A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFBD476D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFBD47896D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2A6439C0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFBD4D1EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,265B1C08B08
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD476D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4D1EEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,2268B459078
call      qword ptr [7FFBD4FF7AE0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,2268B459078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,1E605402B38
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFBD476D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFBD476D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2268B451B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFBD476D1A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFBD476D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFBD47896D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2268B450008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFBD4D1EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1E605402B38
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD476D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4D1EEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFBD4FC6010]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L10
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        near ptr M01_L10
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L10
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L09
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        near ptr M01_L08
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       near ptr M01_L10
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
test      rcx,rcx
je        short M01_L07
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        short M01_L07
mov       r8,[rbx+8]
mov       r12d,[rbx+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M01_L06
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jg        near ptr M01_L16
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
je        short M01_L05
M01_L04
 
add       r13d,r12d
mov       [rbx+18],r13d
jmp       short M01_L07
M01_L05
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L06
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L07
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L11
jmp       near ptr M01_L14
M01_L08
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L01
M01_L09
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L10
 
mov       r15d,1
cmp       r14d,1
jle       short M01_L14
M01_L11
 
test      esi,esi
je        short M01_L13
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        short M01_L15
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L17
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L18
M01_L12
 
add       r13d,esi
mov       [rbx+18],r13d
M01_L13
 
mov       eax,r15d
mov       rcx,[rbp+rax*8+10]
test      rcx,rcx
je        short M01_L07
mov       rax,offset MT_System.String
cmp       [rcx],rax
jne       short M01_L19
jmp       near ptr M01_L03
M01_L14
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L13
M01_L16
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L04
M01_L17
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L12
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L03
M01_L20
 
mov       ecx,6
call      qword ptr [7FFBD477ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFBD4FC64C0]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L14
M01_L06
 
test      esi,esi
je        short M01_L08
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L16
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        near ptr M01_L18
M01_L07
 
add       r13d,esi
mov       [rbx+18],r13d
M01_L08
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L13
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L09
 
test      rcx,rcx
je        short M01_L13
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        short M01_L13
mov       r8,[rbx+8]
mov       r12d,[rbx+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M01_L12
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jg        short M01_L17
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
je        short M01_L11
M01_L10
 
add       r13d,r12d
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L14
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L07
M01_L16
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L08
M01_L17
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L07
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L09
M01_L20
 
mov       ecx,6
call      qword ptr [7FFBD477ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFBD4FC64C0]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L21
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L22
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L07
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L23
M01_L00
 
test      rcx,rcx
je        near ptr M01_L07
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L07
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L06
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L07
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
test      rcx,rcx
je        near ptr M01_L12
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        near ptr M01_L12
mov       r13,[rbx+8]
mov       r12d,[rbx+18]
lea       eax,[r12+r8]
mov       [rsp+24],eax
cmp       eax,[r13+8]
ja        short M01_L11
jmp       near ptr M01_L16
M01_L06
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L07
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L19
M01_L08
 
test      esi,esi
je        short M01_L15
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L14
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L13
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L10
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L15
M01_L10
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L09
M01_L11
 
mov       rcx,rbx
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L08
jmp       short M01_L19
M01_L13
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L14
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L15
 
mov       eax,r15d
mov       rcx,[rbp+rax*8+10]
test      rcx,rcx
je        short M01_L12
mov       rax,offset MT_System.String
cmp       [rcx],rax
jne       near ptr M01_L24
jmp       near ptr M01_L03
M01_L16
 
movsxd    rcx,r12d
lea       rcx,[r13+rcx*2+10]
cmp       r8d,2
jg        short M01_L18
movzx     r10d,word ptr [rdx]
mov       [rcx],r10w
cmp       r8d,2
je        short M01_L20
M01_L17
 
mov       eax,[rsp+24]
mov       [rbx+18],eax
jmp       short M01_L12
M01_L18
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L17
M01_L19
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L20
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L17
M01_L21
 
mov       ecx,6
call      qword ptr [7FFBD477ED00]
int       3
M01_L22
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L23
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L24
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L03
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFBD4FB6010]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L10
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        near ptr M01_L10
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L10
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L09
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        near ptr M01_L17
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       near ptr M01_L10
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
test      rcx,rcx
je        short M01_L07
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L07
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M01_L14
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L05
M01_L04
 
mov       [rbx+18],r13d
jmp       short M01_L07
M01_L05
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L06
 
mov       rcx,rbx
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L07
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L11
M01_L08
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L09
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L10
 
mov       r15d,1
cmp       r14d,1
jle       short M01_L08
M01_L11
 
test      esi,esi
je        short M01_L13
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L16
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L18
M01_L12
 
mov       [rbx+18],r13d
M01_L13
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L07
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       short M01_L19
jmp       near ptr M01_L03
M01_L14
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L04
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L12
M01_L16
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L13
M01_L17
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L01
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L03
M01_L20
 
mov       ecx,6
call      qword ptr [7FFBD476ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFBD4FB7570]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L21
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L22
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L07
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L23
M01_L00
 
test      rcx,rcx
je        near ptr M01_L07
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L07
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L06
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L07
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
test      rcx,rcx
je        near ptr M01_L12
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        near ptr M01_L12
mov       r13,[rbx+8]
mov       r12d,[rbx+18]
lea       eax,[r12+r8]
mov       [rsp+24],eax
cmp       eax,[r13+8]
ja        short M01_L11
jmp       near ptr M01_L16
M01_L06
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L07
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L19
M01_L08
 
test      esi,esi
je        short M01_L15
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L14
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L13
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L10
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L15
M01_L10
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L09
M01_L11
 
mov       rcx,rbx
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L08
jmp       short M01_L19
M01_L13
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L14
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L15
 
mov       eax,r15d
mov       rcx,[rbp+rax*8+10]
test      rcx,rcx
je        short M01_L12
mov       rax,offset MT_System.String
cmp       [rcx],rax
jne       near ptr M01_L24
jmp       near ptr M01_L03
M01_L16
 
movsxd    rcx,r12d
lea       rcx,[r13+rcx*2+10]
cmp       r8d,2
jg        short M01_L18
movzx     r10d,word ptr [rdx]
mov       [rcx],r10w
cmp       r8d,2
je        short M01_L20
M01_L17
 
mov       eax,[rsp+24]
mov       [rbx+18],eax
jmp       short M01_L12
M01_L18
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L17
M01_L19
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L20
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L17
M01_L21
 
mov       ecx,6
call      qword ptr [7FFBD476ED00]
int       3
M01_L22
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L23
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L24
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L03
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFBD4FD7A98]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L21
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L22
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L08
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L23
M01_L00
 
test      rcx,rcx
je        near ptr M01_L08
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L08
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L08
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
test      rcx,rcx
je        short M01_L06
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L06
jmp       near ptr M01_L12
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L09
jmp       near ptr M01_L19
M01_L07
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L08
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L19
M01_L09
 
test      esi,esi
je        short M01_L15
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L14
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L13
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L11
M01_L10
 
mov       [rbx+18],r13d
jmp       short M01_L15
M01_L11
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       r13,[rbx+8]
mov       r12d,[rbx+18]
lea       eax,[r12+r8]
mov       [rsp+24],eax
cmp       eax,[r13+8]
ja        near ptr M01_L05
jmp       short M01_L16
M01_L13
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L14
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L15
 
mov       eax,r15d
mov       rcx,[rbp+rax*8+10]
test      rcx,rcx
je        near ptr M01_L06
mov       rax,offset MT_System.String
cmp       [rcx],rax
jne       near ptr M01_L24
jmp       near ptr M01_L03
M01_L16
 
movsxd    rcx,r12d
lea       rcx,[r13+rcx*2+10]
cmp       r8d,2
jg        short M01_L18
movzx     r10d,word ptr [rdx]
mov       [rcx],r10w
cmp       r8d,2
je        short M01_L20
M01_L17
 
mov       eax,[rsp+24]
mov       [rbx+18],eax
jmp       near ptr M01_L06
M01_L18
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L17
M01_L19
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L20
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L17
M01_L21
 
mov       ecx,6
call      qword ptr [7FFBD478ED00]
int       3
M01_L22
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L23
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L24
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L03
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFBD4FB7A98]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rbp,r8
mov       esi,r9d
mov       rdi,[rsp+90]
test      rdi,rdi
je        near ptr M01_L24
mov       r14d,[rdi+8]
test      r14d,r14d
je        near ptr M01_L25
mov       rcx,[rdi+10]
test      rcx,rcx
jne       near ptr M01_L05
M01_L00
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L22
M01_L01
 
test      esi,esi
je        near ptr M01_L14
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L13
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L18
movzx     r8d,word ptr [rbp]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L03
M01_L02
 
mov       [rbx+18],r13d
jmp       near ptr M01_L14
M01_L03
 
movzx     r8d,word ptr [rbp+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L04
 
test      rcx,rcx
je        near ptr M01_L09
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L09
jmp       near ptr M01_L11
M01_L05
 
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L26
M01_L06
 
test      rcx,rcx
je        near ptr M01_L00
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L00
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L15
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L12
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L10
M01_L07
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       near ptr M01_L00
M01_L08
 
mov       rcx,rbx
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L01
jmp       near ptr M01_L22
M01_L10
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L11
 
mov       r13,[rbx+8]
mov       r12d,[rbx+18]
lea       eax,[r12+r8]
mov       [rsp+24],eax
cmp       eax,[r13+8]
ja        short M01_L08
jmp       short M01_L17
M01_L12
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L07
M01_L13
 
mov       rcx,rbx
mov       rdx,rbp
mov       r8d,esi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L14
 
mov       eax,r15d
mov       rcx,[rdi+rax*8+10]
test      rcx,rcx
je        short M01_L09
jmp       short M01_L16
M01_L15
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L00
M01_L16
 
mov       rdx,offset MT_System.String
cmp       [rcx],rdx
jne       near ptr M01_L27
jmp       near ptr M01_L04
M01_L17
 
movsxd    rcx,r12d
lea       rcx,[r13+rcx*2+10]
cmp       r8d,2
jg        short M01_L21
jmp       short M01_L19
M01_L18
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rbp
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L02
M01_L19
 
movzx     r10d,word ptr [rdx]
mov       [rcx],r10w
cmp       r8d,2
je        short M01_L23
M01_L20
 
mov       r13d,[rsp+24]
mov       [rbx+18],r13d
jmp       near ptr M01_L09
M01_L21
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L20
M01_L22
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L23
 
movzx     edx,word ptr [rdx+2]
mov       [rcx+2],dx
jmp       short M01_L20
M01_L24
 
mov       ecx,6
call      qword ptr [7FFBD476ED00]
int       3
M01_L25
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L26
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L06
M01_L27
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L04
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFBD4FC7A98]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L14
M01_L06
 
test      esi,esi
je        short M01_L08
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L17
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        near ptr M01_L18
M01_L07
 
mov       [rbx+18],r13d
M01_L08
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L13
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L09
 
test      rcx,rcx
je        short M01_L13
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L13
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L12
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L16
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L11
M01_L10
 
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       rcx,rbx
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L14
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L07
M01_L16
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L17
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L08
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L07
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L09
M01_L20
 
mov       ecx,6
call      qword ptr [7FFBD477ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,21329D39084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFBD4FB64C0]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L17
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L18
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L06
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L00
 
test      rcx,rcx
je        near ptr M01_L06
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L06
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L05
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       near ptr M01_L06
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
test      rcx,rcx
je        near ptr M01_L11
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        near ptr M01_L11
mov       r8,[rbx+8]
mov       r12d,[rbx+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L10
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jg        near ptr M01_L14
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L04
 
add       r13d,r12d
mov       [rbx+18],r13d
jmp       near ptr M01_L11
M01_L05
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       r15d,1
cmp       r14d,1
jle       short M01_L12
M01_L07
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        short M01_L13
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L08
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L08
 
add       r13d,esi
mov       [rbx+18],r13d
M01_L09
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L11
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       short M01_L16
jmp       near ptr M01_L03
M01_L10
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L11
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L07
M01_L12
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L13
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L09
M01_L14
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L04
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L08
M01_L16
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L03
M01_L17
 
mov       ecx,6
call      qword ptr [7FFBD476ED00]
int       3
M01_L18
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,2172CA59084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFBD4FC64C0]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L13
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L14
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
add       r13d,esi
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        short M01_L12
mov       r8,[rbx+8]
mov       r12d,[rbx+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M01_L11
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jg        short M01_L15
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
add       r13d,r12d
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L13
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L14
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L15
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L16
 
mov       ecx,6
call      qword ptr [7FFBD477ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,2475ECA9084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFBD4FE6010]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L06
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        near ptr M01_L06
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L06
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L05
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L06
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
test      rcx,rcx
je        near ptr M01_L11
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        near ptr M01_L11
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        near ptr M01_L10
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M01_L13
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L04
 
mov       [rbx+18],r13d
jmp       near ptr M01_L11
M01_L05
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L07
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L14
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L12
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L08
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L08
 
mov       [rbx+18],r13d
M01_L09
 
mov       eax,r15d
mov       rcx,[rbp+rax*8+10]
test      rcx,rcx
je        short M01_L11
mov       rax,offset MT_System.String
cmp       [rcx],rax
jne       near ptr M01_L19
jmp       near ptr M01_L03
M01_L10
 
mov       rcx,rbx
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L11
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L07
jmp       short M01_L15
M01_L12
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L08
M01_L13
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L04
M01_L14
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L09
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFBD479ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L03
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,232E7BE9084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFBD4FB6010]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L06
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        near ptr M01_L06
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L06
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L05
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       near ptr M01_L06
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
test      rcx,rcx
je        near ptr M01_L11
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        near ptr M01_L11
mov       r13,[rbx+8]
mov       r12d,[rbx+18]
lea       eax,[r12+r8]
mov       [rsp+24],eax
cmp       eax,[r13+8]
ja        near ptr M01_L10
movsxd    rcx,r12d
lea       rcx,[r13+rcx*2+10]
cmp       r8d,2
jg        near ptr M01_L13
movzx     r10d,word ptr [rdx]
mov       [rcx],r10w
cmp       r8d,2
jne       short M01_L04
movzx     edx,word ptr [rdx+2]
mov       [rcx+2],dx
M01_L04
 
mov       eax,[rsp+24]
mov       [rbx+18],eax
jmp       near ptr M01_L11
M01_L05
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L07
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L14
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L12
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L08
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L08
 
mov       [rbx+18],r13d
M01_L09
 
mov       eax,r15d
mov       rcx,[rbp+rax*8+10]
test      rcx,rcx
je        short M01_L11
mov       rax,offset MT_System.String
cmp       [rcx],rax
jne       near ptr M01_L19
jmp       near ptr M01_L03
M01_L10
 
mov       rcx,rbx
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L11
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L07
jmp       short M01_L15
M01_L12
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L08
M01_L13
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L04
M01_L14
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L09
M01_L15
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFBD476ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L03
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,24EE2629084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFBD4FD7A98]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L01
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L01
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L02
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L08
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L06
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L07
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L06
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L07
 
mov       [rbx+18],r13d
jmp       short M01_L09
M01_L08
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L14
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L10
 
test      rcx,rcx
je        short M01_L14
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L14
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L13
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L11
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L12
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L11
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L12
 
mov       [rbx+18],r13d
jmp       short M01_L14
M01_L13
 
mov       rcx,rbx
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L14
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFBD478ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L10
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,2EBAE659084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFBD4FE7570]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L13
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L12
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L11
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L14
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
jmp       short M01_L15
M01_L13
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L14
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFBD479ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,2D0C74F9084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFBD4FA7570]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L01
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L01
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4615B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L02
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFBD47FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L08
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L06
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L07
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L06
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4615B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L07
 
mov       [rbx+18],r13d
jmp       short M01_L09
M01_L08
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFBD47FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L14
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L10
 
test      rcx,rcx
je        short M01_L14
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L14
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L13
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L11
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L12
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L11
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4615B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L12
 
mov       [rbx+18],r13d
jmp       short M01_L14
M01_L13
 
mov       rcx,rbx
call      qword ptr [7FFBD47FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L14
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFBD475ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L10
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,2B9E1819084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFBD4FB7A98]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L01
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L01
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L02
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L08
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L06
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L07
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L06
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L07
 
mov       [rbx+18],r13d
jmp       short M01_L09
M01_L08
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L14
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L10
 
test      rcx,rcx
je        short M01_L14
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L14
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L13
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L11
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L12
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L11
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L12
 
mov       [rbx+18],r13d
jmp       short M01_L14
M01_L13
 
mov       rcx,rbx
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L14
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFBD476ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L10
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD47FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M01_L02
M01_L00
 
test      r8,r8
je        short M01_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M01_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M01_L02
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M01_L02
 
ret
M01_L03
 
cmp       r8,40
ja        short M01_L06
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L10
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L02
M01_L06
 
cmp       r8,800
ja        short M01_L09
mov       r9,r8
shr       r9,6
M01_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L07
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L08
 
cmp       rcx,rdx
je        short M01_L02
M01_L09
 
jmp       qword ptr [7FFBD4625B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD480CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFBD476E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFBD476E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,253FFC40008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L02
test      r8b,18
je        short M01_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M01_L00
 
ret
M01_L01
 
test      r8b,4
je        short M01_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M01_L00
M01_L02
 
cmp       r8,40
ja        short M01_L06
M01_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L10
M01_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L05
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M01_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M01_L00
M01_L06
 
cmp       r8,800
ja        short M01_L09
mov       r9,r8
shr       r9,6
M01_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L07
and       r8,3F
cmp       r8,10
ja        short M01_L03
jmp       short M01_L04
M01_L08
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L09
 
jmp       qword ptr [7FFBD4635B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M01_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M01_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD481CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFBD477E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFBD477E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,168DD0D0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFBD4645B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD482CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFBD478E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFBD478E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,21C52C00008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4615B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD47FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD47EEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFBD4615B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4615B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD47FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4615B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4414000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AAF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD461D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFBD475E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFBD475E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4615B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4414000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AAF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD461D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2542BEB0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M01_L02
M01_L00
 
test      r8,r8
je        short M01_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M01_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M01_L02
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M01_L02
 
ret
M01_L03
 
cmp       r8,40
ja        short M01_L06
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L10
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L02
M01_L06
 
cmp       r8,800
ja        short M01_L09
mov       r9,r8
shr       r9,6
M01_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L07
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L08
 
cmp       rcx,rdx
je        short M01_L02
M01_L09
 
jmp       qword ptr [7FFBD4645B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD482CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFBD478E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFBD478E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2AE36B30008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD482EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFBD4655B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD483CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFBD479E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFBD479E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,24BCAB10008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD47FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFBD4625B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD480CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFBD476E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFBD476E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,19C5D240008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFBD482EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFBD4655B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD483CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFBD479E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFBD479E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,24AF0DB0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1B9ABC08160
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFBD4D0E560]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFBD4FD60B8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFBD4CFE9A0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFBD45941F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1B9ABC08B08
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-30]
M03_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD482C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L04
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M03_L04
mov       r8,[rdi+8]
mov       r15d,[rdi+18]
lea       ecx,[r15+r14]
cmp       ecx,[r8+8]
ja        short M03_L07
movsxd    rcx,r15d
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jle       short M03_L06
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
add       r14d,r15d
mov       [rdi+18],r14d
M03_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M03_L02
jmp       short M03_L09
M03_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L07
 
mov       rcx,rdi
mov       r8d,r14d
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M03_L04
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M03_L10
 
mov       rax,1FA3DAE0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,1B9ABC08B08
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-38]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD482C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-38]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFBD482C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,28725C08160
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFBD4CEE560]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFBD4FB60B8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFBD4CDE9A0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFBD45741F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CDEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,28725C08B08
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD480C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFBD47FEB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,2C7B7C40008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CDEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,28725C08B08
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD480C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CDEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFBD480C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CDEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,17B25408160
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFBD4D0E4C0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFBD4FD60B8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFBD4CFEA18]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFBD45941F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,17B25408B08
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD482C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,1BBB7230008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,17B25408B08
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD482C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFBD482C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1E921C08160
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFBD4CFE560]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFBD4FC60B8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFBD4CEEA18]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFBD45841F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1E921C08B08
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD481C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
M03_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M03_L02
jmp       short M03_L09
M03_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L07
 
mov       rcx,rdi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M03_L04
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,229B3A80008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1E921C08B08
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD481C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFBD481C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1B0CFC06168
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFBD4CFE560]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFBD4FC7B40]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFBD4CEEA18]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFBD45841F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1B0CFC06B10
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD481C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,1F161960008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1B0CFC06B10
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD481C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFBD481C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1617CC08160
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFBD4CEE560]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFBD4FB7618]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFBD4CDE9A0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFBD45741F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CDEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1617CC08B08
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD480C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
M03_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M03_L02
jmp       short M03_L09
M03_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L07
 
mov       rcx,rdi
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M03_L04
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFBD47FEB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,1A20EAA0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CDEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1617CC08B08
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD480C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CDEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFBD480C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CDEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,2D44A006168
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFBD4D0E560]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFBD4FD7948]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFBD4CFE688]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFBD45941F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEBF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,2D44A006B10
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD482C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
M03_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M03_L02
jmp       short M03_L09
M03_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L07
 
mov       rcx,rdi
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M03_L04
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,314DBEC0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEBF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,2D44A006B10
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD482C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEBC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFBD482C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEBC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1A5A5C06168
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFBD4CFE560]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFBD4FC7B40]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFBD4CEEA18]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFBD45841F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1A5A5C06B10
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD481C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,1E6379F0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1A5A5C06B10
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD481C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFBD481C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L04
M00_L00
 
mov       ecx,[rsi+1C]
add       ecx,[rsi+18]
test      ecx,ecx
jle       short M00_L01
mov       ecx,[rsi+18]
mov       rdx,[rsi+8]
cmp       [rdx+8],ecx
ja        near ptr M00_L07
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFBD480C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L01
 
mov       rcx,r15
mov       r8,r13
mov       rdx,237C2330210
call      qword ptr [7FFBD4576B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L02
 
cmp       qword ptr [rax+8],0
jne       short M00_L03
mov       r8,1F730400438
cmp       qword ptr [r8],0
jne       short M00_L03
mov       r8,1F730400418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L03
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L04
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
jbe       near ptr M00_L08
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
cmp       ebp,[rdi+44]
jne       near ptr M00_L11
M00_L05
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L06
mov       rcx,rsi
call      qword ptr [7FFBD47FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L06
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       near ptr M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L05
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L07
 
mov       ecx,ecx
mov       word ptr [rdx+rcx*2+10],2C
inc       dword ptr [rsi+18]
jmp       near ptr M00_L01
M00_L08
 
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M00_L10
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M00_L09
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       near ptr M00_L04
M00_L10
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L09
M00_L11
 
call      qword ptr [7FFBD476EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L02
M00_L13
 
call      qword ptr [7FFBD4714030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L03
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFBD480CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD4576B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFBD476EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD4576B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD4576B08]; System.String.Concat(System.String, System.String)
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD480CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD476E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD476E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,237C2330008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFBD4625B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFBFB4E41F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFBFB4F7B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFBFB4F8B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L05
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFBD483C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,247D87E0210
call      qword ptr [7FFBD45A6B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+40]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,20746800438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,20746800418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L05
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
jbe       short M00_L07
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L05
 
cmp       ebp,[rdi+44]
jne       near ptr M00_L11
M00_L06
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L09
mov       rcx,rsi
call      qword ptr [7FFBD482EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L07
 
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L10
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L08
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L05
M00_L09
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        near ptr M00_L06
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L10
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L08
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L08
M00_L11
 
call      qword ptr [7FFBD479EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFBD4744030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFBD483CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD45A6B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFBD479EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD45A6B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD45A6B08]; System.String.Concat(System.String, System.String)
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD483CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFBD479E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFBD479E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,247D87E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFBD4655B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFBFB4E41F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFBFB4F7B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFBFB4F8B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFBD483C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,1B86CCD0210
call      qword ptr [7FFBD45A6B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,177DAC00438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,177DAC00418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFBD482EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFBD479EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFBD4744030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFBD483CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD45A6B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFBD479EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD45A6B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD45A6B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L02
test      r8b,18
je        short M03_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M03_L00
 
ret
M03_L01
 
test      r8b,4
je        short M03_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M03_L00
M03_L02
 
cmp       r8,40
ja        short M03_L06
M03_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L10
M03_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L05
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M03_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M03_L00
M03_L06
 
cmp       r8,800
ja        short M03_L09
mov       r9,r8
shr       r9,6
M03_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L07
and       r8,3F
cmp       r8,10
ja        short M03_L03
jmp       short M03_L04
M03_L08
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L09
 
jmp       qword ptr [7FFBD4655B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M03_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M03_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD483CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFBD479E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFBD479E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4454000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4AEF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD465D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,1B86CCD0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFBFB4E41F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFBFB4F7B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFBFB4F8B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFBD482C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,20A07FE0210
call      qword ptr [7FFBD4596B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,1C976000438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,1C976000418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFBD482CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFBD481EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFBD478EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFBD4734030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFBD482CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD4596B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFBD478EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD4596B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD4596B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFBD4645B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD482CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFBD478E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFBD478E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4444000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ADF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD464D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,20A07FE0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFBFB4E41F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFBFB4F7B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFBFB4F8B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFBD481C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,246DE4D0210
call      qword ptr [7FFBD4586B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,2064C800438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,2064C800418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFBD477EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFBD4724030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFBD481CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD4586B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFBD477EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD4586B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD4586B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFBD4635B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD481CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFBD477E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFBD477E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,246DE4D0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFBFB4E41F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFBFB4F7B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFBFB4F8B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFBD480C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,1C31C820210
call      qword ptr [7FFBD4576B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,1828E800438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,1828E800418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFBD47FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFBD476EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFBD4714030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFBD480CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD4576B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFBD476EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD4576B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD4576B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFBD4625B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD480CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFBD476E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFBD476E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,1C31C820008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFBFB4E41F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFBFB4F7B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFBFB4F8B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFBD481C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,1639DAA0210
call      qword ptr [7FFBD4586B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,1230FC00438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,1230FC00418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFBD481CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFBD480EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFBD477EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFBD4724030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFBD481CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD4586B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFBD477EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD4586B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD4586B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M03_L02
M03_L00
 
test      r8,r8
je        short M03_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M03_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M03_L02
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M03_L02
 
ret
M03_L03
 
cmp       r8,40
ja        short M03_L06
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L10
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L02
M03_L06
 
cmp       r8,800
ja        short M03_L09
mov       r9,r8
shr       r9,6
M03_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L07
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L08
 
cmp       rcx,rdx
je        short M03_L02
M03_L09
 
jmp       qword ptr [7FFBD4635B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD481CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFBD477E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFBD477E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4434000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ACF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD463D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,1639DAA0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFBFB4E41F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFBFB4F7B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFBFB4F8B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFBD480C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,2A7D20B0210
call      qword ptr [7FFBD4576B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+38]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,26744000438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,26744000418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFBD480CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFBD47FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFBD476EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFBD4714030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFBD480CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD4576B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFBD476EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD4576B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFBD4576B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFBD4625B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFBD480CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFBD476E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFBD476E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFBD4424000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFBD4ABF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFBD462D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,2A7D20B0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFBFB4E41F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFBFB4F7B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFBFB4F8B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFBD4FE64D8]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,29CA4806B10
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFBD483C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FFBD483CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFBD483C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FFBD482EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,2DD36720008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFBD4D0EBF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,29CA4806B10
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD483C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4D0EBC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFBD4FB64D8]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,26ED2402B38
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFBD472D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4615B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
M01_L04
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L09
cmp       ecx,r15d
jle       short M01_L06
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L10
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L06
M01_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L06
 
add       r15d,1
jo        short M01_L09
cmp       esi,r15d
jg        near ptr M01_L02
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
call      qword ptr [7FFBD472D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L04
M01_L08
 
mov       rcx,r14
call      qword ptr [7FFBD47496D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L09
 
call      CORINFO_HELP_OVERFLOW
M01_L10
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFBD472D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
jmp       short M01_L06
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,2AF5C590008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CDEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,26ED2402B38
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD472D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4CDEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFBD4FF64D8]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,1CEEC008B08
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFBD476D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FFBD476D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       eax,eax
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFBD476D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FFBD47896D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,20F7DDB0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFBD4D1EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,1CEEC008B08
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD476D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4D1EEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFBD4FF6028]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,20E7100AB00
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFBD476D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FFBD476D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFBD476D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FFBD47896D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,24F02F30008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFBD4D1EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,20E7100AB00
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD476D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4D1EEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFBD4FC7588]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,2358180AB00
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFBD473D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FFBD473D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFBD473D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FFBD47596D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,276136D0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,2358180AB00
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD473D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFBD4FE7588]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,235DFC0AB00
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFBD475D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
M01_L04
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L09
cmp       ecx,r15d
jle       short M01_L06
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L10
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L06
M01_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L06
 
add       r15d,1
jo        short M01_L09
cmp       esi,r15d
jg        near ptr M01_L02
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
call      qword ptr [7FFBD475D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L04
M01_L08
 
mov       rcx,r14
call      qword ptr [7FFBD47796D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L09
 
call      CORINFO_HELP_OVERFLOW
M01_L10
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFBD475D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
jmp       short M01_L06
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,2766DBF0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFBD4D0EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,235DFC0AB00
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD475D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4D0EEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFBD4FE7588]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,26C9DC0AB00
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFBD475D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
M01_L04
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L09
cmp       ecx,r15d
jle       short M01_L06
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L10
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L06
M01_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L06
 
add       r15d,1
jo        short M01_L09
cmp       esi,r15d
jg        near ptr M01_L02
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
call      qword ptr [7FFBD475D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L04
M01_L08
 
mov       rcx,r14
call      qword ptr [7FFBD47796D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L09
 
call      CORINFO_HELP_OVERFLOW
M01_L10
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFBD475D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
jmp       short M01_L06
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,2AD2FB70008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFBD4D0F258]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,26C9DC0AB00
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD475D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4D0F228]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFBD4FC7AB0]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,2793A808B08
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFBD473D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FFBD473D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFBD473D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FFBD47596D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,2B9CC4C0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,2793A808B08
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFBD473D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFBD4FE6568]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFBD45941F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFBD475D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,1C5BD80AB00
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD475D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
call      qword ptr [7FFBD475D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFBD47796D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,2064F7A0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFBD4D0EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1C5BD80AB00
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD475D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFBD4D0EEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFBD4FC6568]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFBD45741F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M01_L05
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
jmp       short M01_L04
M01_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FFBD473D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M01_L00
M01_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,1E41380AB00
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD473D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FFBD473D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFBD47596D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,224A58A0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1E41380AB00
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD473D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFBD4FF6568]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFBD45A41F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M01_L05
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
jmp       short M01_L04
M01_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FFBD476D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M01_L00
M01_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,1CE23002B38
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD476D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4655B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FFBD476D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFBD47896D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,20EAD040008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFBD4D1EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1CE23002B38
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD476D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFBD4D1EEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFBD4FD60B8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFBD45841F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M01_L05
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
jmp       short M01_L04
M01_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FFBD474D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M01_L00
M01_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,1D63200AB00
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD474D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FFBD474D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFBD47696D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,216C3E90008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1D63200AB00
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD474D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFBD4FE7618]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFBD45941F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFBD475D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,27840808B08
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD475D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4645B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
call      qword ptr [7FFBD475D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFBD47796D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,2B8D2550008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFBD4D0EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,27840808B08
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD475D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFBD4D0EEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFBD4FC7948]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFBD45741F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M01_L05
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
jmp       short M01_L04
M01_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FFBD473D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M01_L00
M01_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,20D86402B38
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD473D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
call      qword ptr [7FFBD473D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFBD47596D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,24E101E0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,20D86402B38
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD473D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFBD4FD7B40]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFBD45841F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M01_L05
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
jmp       short M01_L04
M01_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FFBD474D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M01_L00
M01_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,2B0DEC0AB00
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD474D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4635B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FFBD474D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFBD47696D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,2F170910008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,2B0DEC0AB00
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD474D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CFEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFBD4FC7618]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFBD45741F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFBD473D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,2044480AB00
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD473D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFBD4625B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FFBD473D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFBD47596D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,244D64E0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,2044480AB00
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFBD473D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFBD4CEEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret